function encrypt(url, param) {
	var n = Object.create || function() {
			function e() {}
			return function(t) {
				var n;
				return e.prototype = t, n = new e, e.prototype = null, n
			}
		}(),
		i = {},
		a = i.lib = {},
		o = a.Base = {
			extend: function(e) {
				var t = n(this);
				//var t = Object.assign(this) ;
				return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function() {
					t.$super.init.apply(this, arguments)
				}), t.init.prototype = t, t.$super = this, t

			},
			create: function() {
				var e = this.extend();
				return e.init.apply(e, arguments), e
			},
			init: function() {},
			mixIn: function(e) {
				for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]);
				e.hasOwnProperty("toString") && (this.toString = e.toString)
			},
			clone: function() {
				return this.init.prototype.extend(this)
			}
		},
		r = a.WordArray = o.extend({
			init: function(e, t) {
				e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length
			},
			toString: function(e) {
				return (e || cc).stringify(this)
			},
			concat: function(e) {
				var t = this.words,
					n = e.words,
					i = this.sigBytes,
					a = e.sigBytes;
				if (this.clamp(), i % 4)
					for (var o = 0; o < a; o++) {
						var r = n[o >>> 2] >>> 24 - o % 4 * 8 & 255;
						t[i + o >>> 2] |= r << 24 - (i + o) % 4 * 8
					} else
						for (o = 0; o < a; o += 4) t[i + o >>> 2] = n[o >>> 2];
				return this.sigBytes += a, this
			},
			clamp: function() {
				var t = this.words,
					n = this.sigBytes;
				t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = Math.ceil(n / 4)
			},
			clone: function() {
				var e = o.clone.call(this);
				return e.words = this.words.slice(0), e
			},
			random: function(t) {
				for (var n, i = [], a = function(t) {
						t = t;
						var n = 987654321,
							i = 4294967295;
						return function() {
							var a = ((n = 36969 * (65535 & n) + (n >> 16) & i) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & i) &
								i;
							return a /= 4294967296, (a += .5) * (e.random() > .5 ? 1 : -1)
						}
					}, o = 0; o < t; o += 4) {
					var s = a(4294967296 * (n || e.random()));
					n = 987654071 * s(), i.push(4294967296 * s() | 0)
				}
				return new r.init(i, t)
			}
		}),
		s = i.enc = {},
		cc = s.Hex = {
			stringify: function(e) {
				for (var t = e.words, n = e.sigBytes, i = [], a = 0; a < n; a++) {
					var o = t[a >>> 2] >>> 24 - a % 4 * 8 & 255;
					i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16))
				}
				return i.join("")
			},
			parse: function(e) {
				for (var t = e.length, n = [], i = 0; i < t; i += 2) n[i >>> 3] |= parseInt(e.substr(i, 2), 16) << 24 - i % 8 *
					4;
				return new r.init(n, t / 2)
			}
		},
		l = s.Latin1 = {
			stringify: function(e) {
				for (var t = e.words, n = e.sigBytes, i = [], a = 0; a < n; a++) {
					var o = t[a >>> 2] >>> 24 - a % 4 * 8 & 255;
					i.push(String.fromCharCode(o))
				}
				return i.join("")
			},
			parse: function(e) {
				for (var t = e.length, n = [], i = 0; i < t; i++) n[i >>> 2] |= (255 & e.charCodeAt(i)) << 24 - i % 4 * 8;
				return new r.init(n, t)
			}
		},
		u = s.Utf8 = {
			stringify: function(e) {
				try {
					return decodeURIComponent(escape(l.stringify(e)))
				} catch (e) {
					throw new Error("Malformed UTF-8 data")
				}
			},
			parse: function(e) {
				return l.parse(unescape(encodeURIComponent(e)))
			}
		},
		d = a.BufferedBlockAlgorithm = o.extend({
			reset: function() {
				this._data = new r.init, this._nDataBytes = 0
			},
			_append: function(e) {
				"string" == typeof e && (e = u.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes
			},
			_process: function(t) {
				var n = this._data,
					i = n.words,
					a = n.sigBytes,
					o = this.blockSize,
					s = a / (4 * o),
					c = (s = t ? Math.ceil(s) : Math.max((0 | s) - this._minBufferSize, 0)) * o,
					l = Math.min(4 * c, a);
				if (c) {
					for (var u = 0; u < c; u += o) this._doProcessBlock(i, u);
					var d = i.splice(0, c);
					n.sigBytes -= l
				}
				return new r.init(d, l)
			},
			clone: function() {
				var e = o.clone.call(this);
				return e._data = this._data.clone(), e
			},
			_minBufferSize: 0
		}),
		f = (a.Hasher = d.extend({
			cfg: o.extend(),
			init: function(e) {
				this.cfg = this.cfg.extend(e), this.reset()
			},
			reset: function() {
				d.reset.call(this), this._doReset()
			},
			update: function(e) {
				return this._append(e), this._process(), this
			},
			finalize: function(e) {
				return e && this._append(e), this._doFinalize()
			},
			blockSize: 16,
			_createHelper: function(e) {
				return function(t, n) {
					return new e.init(n).finalize(t)
				}
			},
			_createHmacHelper: function(e) {
				return function(t, n) {
					return new f.HMAC.init(e, n).finalize(t)
				}
			}
		}), i.algo = {});


	var a, o, r, s, c;
	c = i;
	a = (i = c).lib, o = a.Base, r = a.WordArray, (s = i.x64 = {}).Word = o.extend({
		init: function(e, t) {
			this.high = e, this.low = t
		}
	}), s.WordArray = o.extend({
		init: function(e, t) {
			e = this.words = e || [], this.sigBytes = null != t ? t : 8 * e.length
		},
		toX32: function() {
			for (var e = this.words, t = e.length, n = [], i = 0; i < t; i++) {
				var a = e[i];
				n.push(a.high), n.push(a.low)
			}
			return r.create(n, this.sigBytes)
		},
		clone: function() {
			for (var e = o.clone.call(this), t = e.words = this.words.slice(0), n = t.length, i = 0; i < n; i++) t[i] = t[
				i].clone();
			return e
		}
	})


	var a, o, x;
	a = i;
	o = (a = i).lib.Base, x = a.enc.Utf8, void(a.algo.HMAC = o.extend({
		init: function(e, t) {
			e = this._hasher = new e.init, "string" == typeof t && (t = x.parse(t));
			var n = e.blockSize,
				i = 4 * n;
			t.sigBytes > i && (t = e.finalize(t)), t.clamp();
			for (var a = this._oKey = t.clone(), o = this._iKey = t.clone(), s = a.words, c = o.words, l = 0; l < n; l++)
				s[l] ^= 1549556828, c[l] ^= 909522486;
			a.sigBytes = o.sigBytes = i, this.reset()
		},
		reset: function() {
			var e = this._hasher;
			e.reset(), e.update(this._iKey)
		},
		update: function(e) {
			return this._hasher.update(e), this
		},
		finalize: function(e) {
			var t = this._hasher,
				n = t.finalize(e);
			return t.reset(), t.finalize(this._oKey.clone().concat(n))
		},
	}));


	function _HmacSHA512(i) {
		var e = i,
			t = e.lib.Hasher,
			n = e.x64,
			a = n.Word,
			o = n.WordArray,
			r = e.algo;

		function s() {
			return a.create.apply(a, arguments)
		}
		var c = [s(1116352408, 3609767458), s(1899447441, 602891725), s(3049323471, 3964484399), s(3921009573, 2173295548),
				s(961987163, 4081628472), s(1508970993, 3053834265), s(2453635748, 2937671579), s(2870763221, 3664609560), s(
					3624381080, 2734883394), s(310598401, 1164996542), s(607225278, 1323610764), s(1426881987, 3590304994), s(
					1925078388, 4068182383), s(2162078206, 991336113), s(2614888103, 633803317), s(3248222580, 3479774868), s(
					3835390401, 2666613458), s(4022224774, 944711139), s(264347078, 2341262773), s(604807628, 2007800933), s(
					770255983, 1495990901), s(1249150122, 1856431235), s(1555081692, 3175218132), s(1996064986, 2198950837), s(
					2554220882, 3999719339), s(2821834349, 766784016), s(2952996808, 2566594879), s(3210313671, 3203337956), s(
					3336571891, 1034457026), s(3584528711, 2466948901), s(113926993, 3758326383), s(338241895, 168717936), s(
					666307205, 1188179964), s(773529912, 1546045734), s(1294757372, 1522805485), s(1396182291, 2643833823), s(
					1695183700, 2343527390), s(1986661051, 1014477480), s(2177026350, 1206759142), s(2456956037, 344077627), s(
					2730485921, 1290863460), s(2820302411, 3158454273), s(3259730800, 3505952657), s(3345764771, 106217008), s(
					3516065817, 3606008344), s(3600352804, 1432725776), s(4094571909, 1467031594), s(275423344, 851169720), s(
					430227734, 3100823752), s(506948616, 1363258195), s(659060556, 3750685593), s(883997877, 3785050280), s(
					958139571, 3318307427), s(1322822218, 3812723403), s(1537002063, 2003034995), s(1747873779, 3602036899), s(
					1955562222, 1575990012), s(2024104815, 1125592928), s(2227730452, 2716904306), s(2361852424, 442776044), s(
					2428436474, 593698344), s(2756734187, 3733110249), s(3204031479, 2999351573), s(3329325298, 3815920427), s(
					3391569614, 3928383900), s(3515267271, 566280711), s(3940187606, 3454069534), s(4118630271, 4000239992), s(
					116418474, 1914138554), s(174292421, 2731055270), s(289380356, 3203993006), s(460393269, 320620315), s(
					685471733, 587496836), s(852142971, 1086792851), s(1017036298, 365543100), s(1126000580, 2618297676), s(
					1288033470, 3409855158), s(1501505948, 4234509866), s(1607167915, 987167468), s(1816402316, 1246189591)
			],
			l = [];
		! function() {
			for (var e = 0; e < 80; e++) l[e] = s()
		}();
		var u = r.SHA512 = t.extend({
			_doReset: function() {
				this._hash = new o.init([new a.init(1779033703, 4089235720), new a.init(3144134277, 2227873595), new a.init(
					1013904242, 4271175723), new a.init(2773480762, 1595750129), new a.init(1359893119, 2917565137), new a.init(
					2600822924, 725511199), new a.init(528734635, 4215389547), new a.init(1541459225, 327033209)])
			},
			_doProcessBlock: function(e, t) {
				for (var n = this._hash.words, i = n[0], a = n[1], o = n[2], r = n[3], s = n[4], u = n[5], d = n[6], f = n[7],
						h = i.high, p = i.low, m = a.high, v = a.low, g = o.high, y = o.low, b = r.high, _ = r.low, x = s.high, C =
						s.low, w = u.high, k = u.low, T = d.high, S = d.low, O = f.high, M = f.low, P = h, I = p, D = m, E = v, L =
						g, A = y, N = b, z = _, j = x, R = C, V = w, H = k, F = T, $ = S, B = O, q = M, W = 0; W < 80; W++) {
					var Y = l[W];
					if (W < 16) var K = Y.high = 0 | e[t + 2 * W],
						G = Y.low = 0 | e[t + 2 * W + 1];
					else {
						var U = l[W - 15],
							X = U.high,
							Z = U.low,
							Q = (X >>> 1 | Z << 31) ^ (X >>> 8 | Z << 24) ^ X >>> 7,
							J = (Z >>> 1 | X << 31) ^ (Z >>> 8 | X << 24) ^ (Z >>> 7 | X << 25),
							ee = l[W - 2],
							te = ee.high,
							ne = ee.low,
							ie = (te >>> 19 | ne << 13) ^ (te << 3 | ne >>> 29) ^ te >>> 6,
							ae = (ne >>> 19 | te << 13) ^ (ne << 3 | te >>> 29) ^ (ne >>> 6 | te << 26),
							oe = l[W - 7],
							re = oe.high,
							se = oe.low,
							ce = l[W - 16],
							le = ce.high,
							ue = ce.low;
						K = (K = (K = Q + re + ((G = J + se) >>> 0 < J >>> 0 ? 1 : 0)) + ie + ((G += ae) >>> 0 < ae >>> 0 ? 1 : 0)) +
							le + ((G += ue) >>> 0 < ue >>> 0 ? 1 : 0), Y.high = K, Y.low = G
					}
					var de, fe = j & V ^ ~j & F,
						he = R & H ^ ~R & $,
						pe = P & D ^ P & L ^ D & L,
						me = I & E ^ I & A ^ E & A,
						ve = (P >>> 28 | I << 4) ^ (P << 30 | I >>> 2) ^ (P << 25 | I >>> 7),
						ge = (I >>> 28 | P << 4) ^ (I << 30 | P >>> 2) ^ (I << 25 | P >>> 7),
						ye = (j >>> 14 | R << 18) ^ (j >>> 18 | R << 14) ^ (j << 23 | R >>> 9),
						be = (R >>> 14 | j << 18) ^ (R >>> 18 | j << 14) ^ (R << 23 | j >>> 9),
						_e = c[W],
						xe = _e.high,
						Ce = _e.low,
						we = B + ye + ((de = q + be) >>> 0 < q >>> 0 ? 1 : 0),
						ke = ge + me;
					B = F, q = $, F = V, $ = H, V = j, H = R, j = N + (we = (we = (we = we + fe + ((de += he) >>> 0 < he >>> 0 ?
						1 : 0)) + xe + ((de += Ce) >>> 0 < Ce >>> 0 ? 1 : 0)) + K + ((de += G) >>> 0 < G >>> 0 ? 1 : 0)) + ((R =
						z + de | 0) >>> 0 < z >>> 0 ? 1 : 0) | 0, N = L, z = A, L = D, A = E, D = P, E = I, P = we + (ve + pe + (
						ke >>> 0 < ge >>> 0 ? 1 : 0)) + ((I = de + ke | 0) >>> 0 < de >>> 0 ? 1 : 0) | 0
				}
				p = i.low = p + I, i.high = h + P + (p >>> 0 < I >>> 0 ? 1 : 0), v = a.low = v + E, a.high = m + D + (v >>>
						0 < E >>> 0 ? 1 : 0), y = o.low = y + A, o.high = g + L + (y >>> 0 < A >>> 0 ? 1 : 0), _ = r.low = _ + z,
					r.high = b + N + (_ >>> 0 < z >>> 0 ? 1 : 0), C = s.low = C + R, s.high = x + j + (C >>> 0 < R >>> 0 ? 1 :
						0), k = u.low = k + H, u.high = w + V + (k >>> 0 < H >>> 0 ? 1 : 0), S = d.low = S + $, d.high = T + F + (
						S >>> 0 < $ >>> 0 ? 1 : 0), M = f.low = M + q, f.high = O + B + (M >>> 0 < q >>> 0 ? 1 : 0)
			},
			_doFinalize: function() {
				var e = this._data,
					t = e.words,
					n = 8 * this._nDataBytes,
					i = 8 * e.sigBytes;
				return t[i >>> 5] |= 128 << 24 - i % 32, t[30 + (i + 128 >>> 10 << 5)] = Math.floor(n / 4294967296), t[31 +
					(i + 128 >>> 10 << 5)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash.toX32()
			},
			clone: function() {
				var e = t.clone.call(this);
				return e._hash = this._hash.clone(), e
			},
			blockSize: 32
		});
		e.SHA512 = t._createHelper(u), e.HmacSHA512 = t._createHmacHelper(u);

		return i.HmacSHA512;
	}

	var HmacSHA512 = _HmacSHA512(i);

	function getKey(args) {
		var S = {
			0: "W",
			1: "l",
			2: "k",
			3: "B",
			4: "Q",
			5: "g",
			6: "f",
			7: "i",
			8: "i",
			9: "r",
			10: "v",
			11: "6",
			12: "A",
			13: "K",
			14: "N",
			15: "k",
			16: "4",
			17: "L",
			18: "1",
			19: "8"
		}
		var O = {
			n: 20,
			codes: S
		};
		for (var e = args.length > 0 && void 0 !== args[0] ? args[0] : "/", t = e.toLowerCase(), n = t +
				t, i = "", o = 0; o < n.length; ++o) {
			var r = n[o].charCodeAt() % O.n;
			i += O.codes[r]
		}
		return i;
	}




	//var url = '/api/search/searchmulti'; 

	var _url = url.toLowerCase();
	var requestHeaderKey = getKey([_url]);
	var requestHeaderName = HmacSHA512(_url, requestHeaderKey).toString().toLowerCase().substr(10, 20);

	/* 
	var param = {
		"searchkey": "{\"name\":\"医院\",\"opername\":\"医院\"}",
		"pageindex": 1,
		"pagesize": 20,
		"searchindex": "multicondition"
	};
				
	*/
     
	var _key = _url + _url + param.toLowerCase();
	var requestHeaderValue = HmacSHA512(_key, requestHeaderKey).toString();

	//console.log(requestHeaderName);
	//console.log(requestHeaderValue);

	return requestHeaderName + '#' + requestHeaderValue;
}
 